认识 GitHub Actions
概述
GitHub Actions 是 GitHub 提供的 CI/CD(持续集成/持续部署)云平台工具。学习一个 CI/CD 平台即可触类旁通其他平台(CircleCI、TravisCI 等)。本节介绍 GitHub Actions 的基本概念、工作流文件结构和执行流程。
CI/CD 基本流程
代码提交 → CI 平台准备环境 → 安装依赖 → 项目构建 → 项目发布
↓ ↓ ↓ ↓ ↓
git push runner 容器 npm install npm build 部署到服务器/平台
text
GitHub Actions 核心概念
| 概念 | 说明 |
|---|---|
| Workflow | 工作流,一个 YAML 配置文件描述的自动化流程 |
| Event | 触发事件,如 push、pull_request、schedule |
| Job | 任务,一个 workflow 中包含多个 job |
| Step | 步骤,一个 job 中包含多个 step |
| Runner | 执行环境,GitHub 提供的虚拟机(Ubuntu/macOS/Windows) |
| Action | 可复用的步骤组件,如 actions/checkout@v4 |
Workflow 文件结构
# .github/workflows/deploy.yml
name: Deploy # 工作流名称
on: # 触发条件
push:
branches: [main] # main 分支 push 时触发
jobs: # 任务列表
build-and-deploy: # 任务名称
runs-on: ubuntu-latest # 运行环境
steps: # 步骤列表
- name: Checkout # 步骤1:拉取代码
uses: actions/checkout@v4
- name: Setup Node.js # 步骤2:配置 Node 环境
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install deps # 步骤3:安装依赖
run: pnpm install --frozen-lockfile
- name: Build # 步骤4:构建项目
run: pnpm build
- name: Deploy # 步骤5:部署
run: pnpm deploy
yaml
YAML 结构层级
name: ... ← 工作流名称(顶层)
on: ... ← 触发条件
push: ...
pull_request: ...
jobs: ← 任务集合
job-name: ← 任务名称
runs-on: ... ← 运行环境
steps: ← 步骤列表
- name: ... ← 步骤名称
uses: ... ← 使用 Action
run: ... ← 执行命令
yaml
关键配置项
触发条件(on)
# push 触发
on:
push:
branches: [main]
# PR 触发
on:
pull_request:
branches: [main]
# 手动触发
on:
workflow_dispatch:
# 定时触发
on:
schedule:
- cron: '0 0 * * *' # 每天 0 点
# tag 触发
on:
push:
tags: ['v*']
yaml
运行环境(runs-on)
| 环境值 | 系统 | 说明 |
|---|---|---|
ubuntu-latest | Ubuntu | 最常用,Linux 构建 |
macos-latest | macOS | macOS/iOS 构建 |
windows-latest | Windows | Windows 构建 |
矩阵构建(matrix)
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
node-version: [18, 20]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
yaml
常用 Actions
| Action | 用途 |
|---|---|
actions/checkout@v4 | 拉取仓库代码 |
actions/setup-node@v4 | 配置 Node.js 环境 |
actions/setup-python@v5 | 配置 Python 环境 |
actions/upload-artifact@v4 | 上传构建产物 |
actions/download-artifact@v4 | 下载构建产物 |
peaceiris/actions-gh-pages@v3 | 部署到 GitHub Pages |
GitHub Actions 工作流页面
在 GitHub 仓库的 Actions 标签页中可以查看:
- 工作流运行列表
- 每次运行的日志详情
- 步骤执行结果(Setup Job → Checkout → Install → Build → Publish)
- 错误信息定位
实践要点
- GitHub Actions 使用 YAML 配置文件描述工作流,放置在
.github/workflows/目录 - 核心结构:
name→on(触发条件)→jobs(任务)→steps(步骤) - 矩阵构建支持多平台、多版本并行测试
- 支持部署到 GitHub Pages、远程服务器、各种云平台
- 学会一个 CI/CD 平台,其他平台(CircleCI、TravisCI)概念通用
↑